#ifndef CONFIG_H
#define CONFIG_H
#include <Arduino.h>
#include <ArduinoJson.h>
// 引脚定义
#define TEST_BUTTON 14 // 按钮4连接D5引脚14
#define CONFIG_BUTTON 5 // 按钮1连接D1引脚5
#define KEY1_BUTTON 5  // 按钮1连接D1引脚
#define KEY2_BUTTON 0  // 按钮2连接D2引脚
#define KEY3_BUTTON 4  // 按钮3连接D3引脚
#define COIN_PIN 12  // 投币D6引脚 GPIO12


// wifi数据存储结构
struct WiFiConfig {
  char ssid[32]; //账号
  char password[64];//密码
  bool configured;
};

//ip和键位数据配置
struct WebConfig {
  char url[32];////动态
  int k1 = 0; //按钮1，消耗积分
  int k2 = 0;//按钮2，消耗积分
  int k3 = 0;//按钮3，消耗积分
  char time[16] = "";
  bool configured = false;
};

// 用户数据存储结构
struct UserConfig {
  char snid[32]; //会员卡号
  int scroe = 0;;//剩余积分
  int cc = 0;;//币数coin_count
  int tc = 0;;//票数tick_count
  int xc = 0;;//消费数xiaofei_count
  int pc = 0;;//剩余积分point_count
};
extern WiFiConfig wifiConfig;
extern WebConfig webConfig;
extern UserConfig userConfig;
#define WEB_CONFIG_ADDR sizeof(WiFiConfig)  // 存储偏移地址=wifi大小
#define USER_CONFIG_ADDR sizeof(WebConfig)+WEB_CONFIG_ADDR  // 用户偏移地址=wifi+web的大小
// 创建配置联合体
struct SystemConfig {
  WiFiConfig wifi;
  WebConfig web;
  UserConfig user;
};

extern SystemConfig sysconfig;
#define SYS_CONFIG_ADDR sizeof(sysconfig)  // 自动计算所有配置偏移地址

#endif
